package org.jeecg.common.constant.enums;

/**
 * 公共枚举接口
 * @author: qiang.zhou
 * @date: 2024/8/1 16:15
 **/
public interface BaseEnum<K, V> {

    /**
     * 枚举值
     * @author: qiang.zhou
     * @date: 2024/8/1 16:16
     * @return T
     **/
    K getCode();

    /**
     * 返回枚举的名称
     * @author: qiang.zhou
     * @date: 2024/8/1 16:17
     * @return M
     **/
    V getName();

    /**
     * 校验枚举值
     * @author: qiang.zhou
     * @date: 2024/8/1 16:18
     * @param code
     * @return boolean
     **/
    default boolean checkCode(K code) {
        if (null == this.getCode() && null == code) {
            return true;
        }
        if (null == this.getCode() || null == code) {
            return false;
        }
        return this.getCode().equals(code);
    };

}
